﻿using Clipper.Model.EnumModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
namespace Clipper.Model
{
    /// <summary>
    /// 反应杯
    /// </summary>
    [Serializable]
    public class ReactionCup : AbstractModel
    {
        public ReactionCup()
        {
        }

        //样本编号
        long _sampleInfoID;
        /// <summary>
        /// 样本编号
        /// </summary>
        public long SampleInfoID
        {
            get
            {
                return _sampleInfoID;
            }
            set
            {
                _sampleInfoID = value;
                NotifyPropertyChanged("SampleInfoID");
            }
        }
        string _testTubeBarcode;


        bool isSaveResult = false;
        public bool IsSaveResult
        {
            get
            {
                return isSaveResult;
            }

            set
            {
                isSaveResult = value;
            }
        }

        //杯子的孔位设置
        int _holeInfoID;
        /// <summary>
        /// 孔的位置编号
        /// </summary>
        public int HoleInfoID
        {
            get
            {
                return _holeInfoID;
            }

            set
            {
                _holeInfoID = value;
            }
        }
        ////设置杯子的状态
        //CupHoleStatusEnum holeStatus;
        //public CupHoleStatusEnum HoleStatus
        //{
        //    get
        //    {
        //        return holeStatus;
        //    }

        //    set
        //    {
        //        holeStatus = value;
        //    }
        //}


        //孵育时间
        int _incubationtime;

        public int Incubationtime
        {
            get
            {
                return _incubationtime;
            }

            set
            {
                _incubationtime = value;
            }
        }

        /// <summary>
        /// 试管的条码
        /// </summary>
        public string TestTubeBarcode
        {
            get
            {
                return _testTubeBarcode;
            }
            set
            {
                _testTubeBarcode = value;
                NotifyPropertyChanged("TestTubeBarcode");
            }
        }
        string _detectItem;
        /// <summary>
        /// 检测项名称
        /// </summary>
        public string DetectItem
        {
            get
            {
                return _detectItem;
            }
            set
            {
                _detectItem = value;
                NotifyPropertyChanged("DetectItem");
            }
        }
        DetectItems _detectItemModel;
        /// <summary>
        /// 检测项信息
        /// </summary>
        public DetectItems DetectItemModel
        {
            get
            {
                return _detectItemModel;
            }
            set
            {
                _detectItemModel = value;
            }
        }
        int _lightValue;
        /// <summary>
        /// 发光值
        /// </summary>
        public int LightValue
        {
            get
            {
                return _lightValue;
            }
            set
            {
                _lightValue = value;
            }
        }
        string _detectResult;

        /// <summary>
        /// 结果
        /// </summary>
        public string DetectResult
        {
            get
            {
                return _detectResult;
            }
            set
            {
                _detectResult = value;
                NotifyPropertyChanged("DetectResult");
            }
        }
        bool _isInStrip = false;
        /// <summary>
        /// 反应杯是否放入反应条
        /// </summary>
        public bool IsInStrip
        {
            get
            {
                return _isInStrip;
            }
            set
            {
                _isInStrip = value;
                NotifyPropertyChanged("IsOrder");
            }
        }

        byte _reactStripSeat;
        /// <summary>
        /// 反应条中位置,0-7
        /// </summary>
        public byte ReactStripSeat
        {
            get
            {
                return _reactStripSeat;
            }
            set
            {
                _reactStripSeat = value;
            }
        }

        DetectResultValueEnum _detectProcess;
        /// <summary>
        /// 正常标志
        /// </summary>
        public DetectResultValueEnum DetectProcess
        {
            get
            {
                return _detectProcess;
            }
            set
            {
                _detectProcess = value;
            }
        }

        string _testTubeShelfBarcode;
        /// <summary>
        /// 样本所在试管架的条形码
        /// </summary>
        public string TestTubeShelfBarcode
        {
            get
            {
                return _testTubeShelfBarcode;
            }
            set
            {
                _testTubeShelfBarcode = value;
            }
        }

        byte _testTubeHoleNumber;
        /// <summary>
        /// 样本在试管架中的孔位号
        /// </summary>
        public byte TestTubeHoleNumber
        {
            get
            {
                return _testTubeHoleNumber;
            }
            set
            {
                _testTubeHoleNumber = value;
            }
        }


        string _note;
        /// <summary>
        /// 备注
        /// </summary>
        public string Note
        {
            get
            {
                return _note;
            }
            set
            {
                _note = value;
            }
        }

        private int reagentHoleID;
        /// <summary>
        /// 试剂孔号 
        /// </summary>
        public int ReagentHoleID
        {
            get
            {
                return reagentHoleID;
            }

            set
            {
                reagentHoleID = value;
            }
        }
        private int stripID;
        /// <summary>
        /// 所在条号 
        /// </summary>
        public int StripID
        {
            get
            {
                return stripID;
            }

            set
            {
                stripID = value;
            }
        }
        private int cupSeatID;
        /// <summary>
        /// 试剂孔号 
        /// </summary>
        public int CupSeatID
        {
            get
            {
                return cupSeatID;
            }

            set
            {
                cupSeatID = value;
            }
        }
        private ObservableCollection<int> detectResultList = new ObservableCollection<int>();
        public ObservableCollection<int> DetectResultList
        {
            get
            {
                return detectResultList;
            }

            set
            {
                detectResultList = value;
            }
        }
        //获取结果时间轴
        private ObservableCollection<int> detectResultTimeList = new ObservableCollection<int>();
        public ObservableCollection<int> DetectResultTimeList
        {
            get
            {
                return detectResultTimeList;
            }

            set
            {
                detectResultTimeList = value;
            }
        }

       

        public DateTime RecordTime = new DateTime();

        private bool changeFlag = true;//更改标记
        public bool ChangeFlag
        {
            get
            {
                return changeFlag;
            }

            set
            {
                changeFlag = value;
                NotifyPropertyChanged("ChangeFlag");
            }
        }
    }
}
